Connexion à Odoo
1 - Connexion API ODOO
La connexion à Odoo depuis Vision est basée sur le protocole Odoo RPC (JSON-RPC 2.0).
Toutes les requêtes sont envoyées en POST vers un point de terminaison unique.
2 - Authentification
Odoo exige que les utilisateurs de l'API soient authentifiés avant de pouvoir interroger la plupart des données.
Le point de terminaison xmlrpc/2/common fournit des méta-appels qui ne nécessitent pas d'authentification, comme l'authentification elle-même ou la récupération des informations de version.
L'authentification elle-même se fait via la fonction d'authentification et renvoie un identifiant utilisateur (uid) utilisé dans les appels authentifiés au lieu de la connexion.
L’appel de l’authentification se fait sur l’url : {{url}}/jsonrpc
Le json du body est :
API ODOO
{ "jsonrpc": "2.0", "method": "call", "params": { "service": "common", "method": "authenticate", "args": [ "{{db}}", "{{username}}", "{{password}}", {} ] } }
Sur vision, on crée un smartflow d’authentification suivant :
La réponse obtenue par l’appel API est la suivante :
où result est l’uid retourné par ODOO.
On va pouvoir réutiliser l’UID de la sorte :
3 - Appels vers les bases :
Maintenant que l’authentification est faite, on va pouvoir faire les appels aux données sur la même route basés sur le modèle décrit sur Postman:
{
"jsonrpc": "2.0",
"method": "call",
"params": {
"service": "object",
"method": "execute_kw",
"args": [
"edu-apidemo",
"2",
"{{password}}",
"res.partner",
"search",
[[]]
],
"id": 100000000
}
}
Dans cet exemple, on rapatrie des champs de la table account.move
Le json à envoyer est alors du type
{ "jsonrpc": "2.0",
"method": "call",
"params": {
"service": "object",
"method": "execute_kw",
"args": [
"{{db}}",
"{{uid}}",
"{{password}}",
"account.move",
"search_read",
[
[[
"move_type",
"=",
"out_invoice"
],
[
"state",
"!=",
"draft"
]]
],
{"fields": [
"id",
"name",
"invoice_date",
"invoice_date_due",
"partner_id",
"amount_untaxed",
"payment_state",
"move_type",
"amount_tax",
"invoice_pdf_report_file",
"attachment_ids"
]
}
],
"id": 100000000
}
}
On obtient en retour la liste des factures
Avec le détail :




Rechercher